(w32_hide_hourglass): Handle case where frame
authorJason Rumney <jasonr@gnu.org>
Sun, 8 Feb 2009 15:34:38 +0000 (15:34 +0000)
committerJason Rumney <jasonr@gnu.org>
Sun, 8 Feb 2009 15:34:38 +0000 (15:34 +0000)
disappeared while hourglass was displayed. (Bug #2193)

src/w32fns.c

index 70964cb8667730fd4eca7ea87bb87c7f36d7f191..16649cce2cb1a8ef78b55f3aa844f8fb8e4bebcf 100644 (file)
@@ -5279,9 +5279,18 @@ w32_hide_hourglass ()
     {
       struct frame *f = x_window_to_frame (&one_w32_display_info,
                                           hourglass_hwnd);
+      if (f)
+       f->output_data.w32->hourglass_p = 0;
+      else
+       /* If frame was deleted, restore to selected frame's cursor.  */
+       f = SELECTED_FRAME ();
+
+      if (FRAME_W32_P (f))
+       SetCursor (f->output_data.w32->current_cursor);
+      else
+       /* No cursors on non GUI frames - restore to stock arrow cursor.  */
+       SetCursor (w32_load_cursor (IDC_ARROW));
 
-      f->output_data.w32->hourglass_p = 0;
-      SetCursor (f->output_data.w32->current_cursor);
       hourglass_shown_p = 0;
     }
 }